package com.zsh.admin.config;

import com.zsh.admin.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author zsh
 * @Description 1.编写应该拦截器，实现HandlerInterceptor接口
 *              2.拦截器注册到容器中（实现WebMvcConfigurer）
 *              3.拦截所有时，静态资源也会被拦截
 * @EnableWebMvc :全面接管springmvc
 *              1.静态资源，视图解析器，欢迎页 。。。 全部的自动配置都失效
 * @create 2022-02-26 11:09
 */
//@EnableWebMvc  //慎用
@Configuration
public class AdminWebConfig implements WebMvcConfigurer {

    /**
     * 定义静态资源
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        /**
         * 访问 /aa/** 下面的所有请求，都去classpath:/static/ 匹配
         */
        registry.addResourceHandler("/aa/**")
                .addResourceLocations("classpath:/static/");
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/**")  //拦截所有 包含静态资源
                .excludePathPatterns("/","/login","/css/**","/fonts/**","/images/**","/js/**","/aa/**");  //放行登录页
    }
}
